package com.sunducation.wts.room.bean

import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.PrimaryKey
import com.sunducation.wts.room.bean.User

/**
 * 外键非常有用，因为当引用的实体发生改变时，你可以指定如何处理。
 * 例如，如果@ForeignKey的onDelete属性值为CASCADE，如果删除user，所有具有相同userId的book会被全部删除
 * */
@Entity(foreignKeys = arrayOf(ForeignKey(entity = User::class,
    parentColumns = arrayOf("userId"),
    childColumns = arrayOf("bookId"))))
data class Book(@PrimaryKey(autoGenerate = true) var bookId: Long?,
                var title: String,
                @ColumnInfo(name = "user_id") var userId: Long) {
}